package br.affCorp.view.impl;

import java.util.ArrayList;
import java.util.Collection;

import org.ajax4jsf.model.KeepAlive;

import br.affCorp.controller.facade.impl.UsuarioFacade;
import br.affCorp.model.ObjetoDeAprendizagemDTO;
import br.affCorp.model.UsuarioDTO;
import br.affCorp.view.FacesAb;
import br.util.WebContentUtil;

@KeepAlive(ajaxOnly = true)
public class IndexFaces extends FacesAb {

	private static final long serialVersionUID = 1L;

	private UsuarioFacade usuarioFacade;

	private Collection<UsuarioDTO> amigoList;
	private Collection<ObjetoDeAprendizagemDTO> oaList;

	private Collection<ObjetoDeAprendizagemDTO> topOaList;

	private Collection<ObjetoDeAprendizagemDTO> recentesOaList;

	public IndexFaces() {
		this.inicializarFaces();
	}

	protected void inicializarFaces() {
		this.inicializarDTO();
		this.inicializarFacade();
	}

	protected void inicializarDTO() {
		this.inicializarLista();
	}

	protected void inicializarFacade() {
		usuarioFacade = new UsuarioFacade();
	}

	protected void inicializarLista() {
		amigoList = new ArrayList<UsuarioDTO>();
		oaList = new ArrayList<ObjetoDeAprendizagemDTO>();
		topOaList = new ArrayList<ObjetoDeAprendizagemDTO>();
		recentesOaList = new ArrayList<ObjetoDeAprendizagemDTO>();
	}

	public String inicio() {

		usuarioFacade.obterPorUID(getUsuarioDTO());

		amigoList = getUsuarioDTO().getAmigos();
		oaList = getUsuarioDTO().getObjetosDeAprendizagem();
//		topOaList = getUsuarioDTO().getObjetosDeAprendizagem();
//		recentesOaList = getUsuarioDTO().getObjetosDeAprendizagem();

		return WebContentUtil.INICIO;
	}

	public Collection<UsuarioDTO> getAmigoList() {
		return amigoList;
	}

	public void setAmigoList(Collection<UsuarioDTO> amigoList) {
		this.amigoList = amigoList;
	}

	public Collection<ObjetoDeAprendizagemDTO> getOaList() {
		return oaList;
	}

	public void setOaList(Collection<ObjetoDeAprendizagemDTO> oaList) {
		this.oaList = oaList;
	}

	public Collection<ObjetoDeAprendizagemDTO> getTopOaList() {
		return topOaList;
	}

	public void setTopOaList(Collection<ObjetoDeAprendizagemDTO> topOaList) {
		this.topOaList = topOaList;
	}

	public Collection<ObjetoDeAprendizagemDTO> getRecentesOaList() {
		return recentesOaList;
	}

	public void setRecentesOaList(
			Collection<ObjetoDeAprendizagemDTO> recentesOaList) {
		this.recentesOaList = recentesOaList;
	}

}
